package com.lcz.authority.common.service.file;


import com.lcz.authority.common.exception.file.InvalidExtensionException;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * @author lcz
 * @desc 文件操作api
 * （后期整合一下阿里云 腾讯云）
 * @mail lcz_0130@163.com
 * @date 2024/05/06
 */
public interface FileOperatorApi {
    /**
     * 以默认配置进行文件上传
     *
     * @param file 上传的文件
     * @return 文件名称
     */
    String upload(MultipartFile file);

    /**
     * 根据文件路径上传
     *
     * @param baseDir 相对应用的基目录
     * @param file    上传的文件
     * @return 文件名称
     * @throws IOException
     */
    String upload(String baseDir, MultipartFile file);

    /**
     * 文件上传
     *
     * @param bucketName       相对应用的基目录
     * @param file             上传的文件
     * @param allowedExtension 上传文件类型
     * @return 返回上传成功的文件名
     * @throws IOException               比如读写文件出错时
     * @throws InvalidExtensionException 文件校验异常
     */
    String upload(String bucketName, MultipartFile file, String[] allowedExtension);


}
